Последние изменения - Поиск:

edit SideBar

Go /

ОбработкаОшибок

Вообще говоря, с обработкой ошибок всё плохо, т.к. нельзя отловить момент возникновения ошибки.

Поиск места, где генерируется ошибка, при возврате кода ошибки

  • error.New - можно поставить брекпойнт и кое-что поймается
  • Если известен тип, то может быть функция "фабрика", которая его возвращает - тогда в неё брекпойнт
  • Можно ли ставить брекпойнт на создание структуры данного типа? Я не знаю, но хорошо бы такое поиметь
  • В своём коде можно использовать продвинутые фабрики ошибок: https://habr.com/ru/post/440008/ - там описан пакет https://github.com/ztrue/tracerr

В них есть стек

Паника

/usr/local/go/src/runtime/panic.go - там можно поставить брекпойнты на gopanic и gorecover и отлаживать любую панику.

ЛОР

golang - не хочу возвращать err, хочу паниковать!

Паникуй как профессионал - приводится подсчёт использования паники в библиотеках, сравнивается быстродействие программ с паникой и без и показывается, что в том примере паника не уступает по скорости.

Править - История - Печать - Последние изменения - Поиск
Редакция от 18.03.2019 12:57